Platform Explorer / Nuxeo Platform 6.0

Extension point elasticSearchIndex

Documentation

Extension point used to setup an Elasticsearch index.

The one used to index Nuxeo documents must be of type "doc".

    <elasticSearchIndex create="true" name="nuxeo" type="doc">
        <settings/>
        <mapping/>
        <fetchFromSources>
            <include>ecm:*</include>
            <include>dc:*</include>
            <exclude>ecm:binaryFulltext</exclude>
        </fetchFromSources>
    </elasticSearchIndex>

@Since 5.9.3 name is the Elasticsearch index name.

type is the Elasticsearch type that hold a mapping, "doc" is the mapping for Nuxeo documents

create can be set to false if you don't want Nuxeo to initialize the index and mapping.

settings the Elasticsearch settings @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html

mapping the Elasticsearch mapping for the type @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html

@Since 5.9.5 fetchFromSources, include a list of field name pattern that will be included when fetching document from Elasticsearch (@see NxQueryBuilder.fetchFromElasticsearch) use the exclude list to prevent returning fulltext or long fields.

Contribution Descriptors

  • Class: org.nuxeo.elasticsearch.config.ElasticSearchIndexConfig

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-runtime-6.0.jar
    <extension point="elasticSearchIndex" target="org.nuxeo.elasticsearch.ElasticSearchComponent">
        <elasticSearchIndex name="nuxeo" repository="default" type="doc">
          <fetchFromSource>
            <include>ecm:*</include>
            <include>dc:*</include>
            <exclude>ecm:binarytext</exclude>
          </fetchFromSource>
    
          <settings>
    {
       "analysis" : {
          "filter" : {
             "en_stem_filter" : {
                "name" : "minimal_english",
                "type" : "stemmer"
             },
             "en_stop_filter" : {
                "stopwords" : [
                   "_english_"
                ],
                "type" : "stop"
             },
             "fr_elision_filter" : {
                "articles" : [
                   "c",
                   "l",
                   "m",
                   "t",
                   "qu",
                   "n",
                   "s",
                   "j"
                ],
                "type" : "elision"
             },
             "fr_stem_filter" : {
                "name" : "minimal_french",
                "type" : "stemmer"
             },
             "fr_stop_filter" : {
                "stopwords" : [
                   "_french_"
                ],
                "type" : "stop"
             }
          },
          "tokenizer" : {
             "path_tokenizer" : {
                "delimiter" : "/",
                "type" : "path_hierarchy"
             }
          },
          "analyzer" : {
             "en_analyzer" : {
                "alias" : "fulltext",
                "filter" : [
                   "lowercase",
                   "en_stop_filter",
                   "en_stem_filter",
                   "asciifolding"
                ],
                "type" : "custom",
                "tokenizer" : "standard"
             },
             "fr_analyzer" : {
                "filter" : [
                   "lowercase",
                   "fr_stop_filter",
                   "fr_stem_filter",
                   "asciifolding",
                   "fr_elision_filter"
                ],
                "type" : "custom",
                "tokenizer" : "standard"
             },
             "path_analyzer" : {
                "type" : "custom",
                "tokenizer" : "path_tokenizer"
             },
             "default" : {
                "type" : "custom",
                "tokenizer" : "keyword"
             }
          }
       }
    }
          </settings>
          <mapping>
    {
       "_size" : {
          "enabled" : true
       },
       "_all" : {
          "analyzer" : "fulltext"
       },
       "properties" : {
          "dc:title" : {
             "type" : "multi_field",
             "fields" : {
               "dc:title" : {
                 "index" : "not_analyzed",
                 "type" : "string"
               },
               "fulltext" : {
                 "boost": 2,
                 "type": "string",
                 "analyzer" : "fulltext"
              }
            }
          },
          "dc:description" : {
             "type" : "multi_field",
             "fields" : {
               "dc:description" : {
                 "index" : "no",
                 "include_in_all" : "true",
                 "type" : "string"
               },
               "fulltext" : {
                 "boost": 1.5,
                 "type": "string",
                 "analyzer" : "fulltext"
              }
            }
          },
          "note:note" : {
             "type" : "multi_field",
             "fields" : {
               "note:note" : {
                 "index" : "no",
                 "include_in_all" : "true",
                 "type" : "string"
               },
               "fulltext" : {
                 "type": "string",
                 "analyzer" : "fulltext"
              }
            }
          },
          "ecm:binarytext*" : {
             "type" : "string",
             "analyzer" : "fulltext"
          },
          "ecm:path" : {
             "type" : "multi_field",
             "fields" : {
                "children" : {
                   "search_analyzer" : "keyword",
                   "index_analyzer" : "path_analyzer",
                   "type" : "string"
                },
                "ecm:path" : {
                   "index" : "not_analyzed",
                   "type" : "string"
                }
             }
          },
          "ecm:pos": {
             "type": "integer"
          },
          "dc:created": {
             "format": "dateOptionalTime",
            "type": "date"
          },
          "dc:modified": {
             "format": "dateOptionalTime",
            "type": "date"
          }
       }
    }
          </mapping>
    
        </elasticSearchIndex>
      </extension>